home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / mac / bonus / peter_le / talk_sou / my_libra / mybutton.uni < prev    next >
Text File  |  1992-04-20  |  2KB  |  75 lines

  1. unit MyButtons;
  2.  
  3. { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
  4.  
  5. interface
  6.  
  7.     procedure GrayButton (dlg: dialogPtr; item: integer);
  8.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  9.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  10.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  11.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  12.  
  13. implementation
  14.  
  15.     procedure GrayButton (dlg: dialogPtr; item: integer);
  16.         var
  17.             kind: integer;
  18.             h: handle;
  19.             r: rect;
  20.             ps: PenState;
  21.     begin
  22.         GetDItem(dlg, item, kind, h, r);
  23.         InsetRect(r, 4, 2);
  24.         GetPenState(ps);
  25.         PenPat(gray);
  26.         PenMode(patBic);
  27.         PaintRoundRect(r, 3, 3);
  28.         SetPenState(ps);
  29.     end;
  30.  
  31.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  32.         var
  33.             kind: integer;
  34.             h: handle;
  35.             r: rect;
  36.     begin
  37.         GetDItem(dlg, item, kind, h, r);
  38.         Draw1Control(controlHandle(h));
  39.     end;
  40.  
  41.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  42.     begin
  43.         if not active then
  44.             GrayButton(dlg, item);
  45.     end;
  46.  
  47.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  48.         var
  49.             kind: integer;
  50.             h: handle;
  51.             r: rect;
  52.             ps: PenState;
  53.     begin
  54.         active := new;
  55.         GetDItem(dlg, item, kind, h, r);
  56.         if active then
  57.             HiliteControl(controlHandle(h), 0)
  58.         else begin
  59.             HiliteControl(controlHandle(h), 255);
  60.             GrayButton(dlg, item);
  61.         end;
  62.     end;
  63.  
  64.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  65.     begin
  66.         if active <> new then begin
  67.             if new then
  68.                 UngrayButton(dlg, item)
  69.             else
  70.                 GrayButton(dlg, item);
  71.             InitButton(dlg, item, active, new);
  72.         end;
  73.     end;
  74.  
  75. end.